% $File: problem.tex
% $Date: Fri Mar 14 21:30:28 2014 +0800
% $Author: jiakai <jia.kai66@gmail.com>

\section{未解之谜}
在本项目的开发过程中，遇到了不计其数的问题，其中不少都调试出来并正确解决了，
但也有些未解之谜，最终通过各种手段得以绕过。现列举如下：

\begin{enumerate}
	\item 时序问题 \\
		系统通过了逻辑仿真，在逻辑综合并烧入FPGA后，
		却发现时钟频率达到50MB后无法正常工作。后来用拨码开关调节CPU时钟，
		发现如果从ROM中读取程序，可以工作在25MHz；从RAM读取的话只能达到12.5MHz。
		分析xilinx逻辑综合产生的报告，发现部分数据通路的线路和逻辑延时都太大，
		而且在设计上很难优化。花了很多时间想解决这个问题，
		也尝试了几种不同的设计，但都未能成功，最终CPU运行在12.5MHz。
		不过由于是流水CPU，加上编译器优化，实际程序的运行速度还是不错的。
	\item 诡异bug \\
		最诡异的一个bug，可以参考git commit
		8d5509e44b7ce5de286a7792c1a27b5bf95389c5。
		当时发现VGA的红、绿、蓝分量接反了，
		但将其修改正确后数码管却不能稳定工作了。
		但唯一的修改仅仅是交换了两条线的顺序。
		估计可能是xilinx全局布线优化时造成了时序的问题。
\end{enumerate}

% vim: filetype=tex foldmethod=marker foldmarker=f{{{,f}}}

